package org.example.dbcompare.model.result;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * SQL执行结果
 * @author wuyong
 * @date 2025/01/22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SqlExecutionItem {
    
    /**
     * 执行是否成功
     */
    private boolean success;
    
    /**
     * 执行的SQL语句
     */
    private String sql;
    
    /**
     * 执行开始时间
     */
    private LocalDateTime startTime;
    
    /**
     * 执行结束时间
     */
    private LocalDateTime endTime;
    
    /**
     * 执行耗时（毫秒）
     */
    private long executionTimeMs;
    
    /**
     * 影响的行数（INSERT/UPDATE/DELETE）
     */
    private int affectedRows;
    
    /**
     * 是否有结果集（SELECT语句）
     */
    private boolean hasResultSet;
    
    /**
     * 结果集行数（SELECT语句）
     */
    private int resultSetRows;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * SQL错误代码
     */
    private int errorCode;
    
    /**
     * SQL状态
     */
    private String sqlState;
    
    /**
     * 警告信息列表
     */
    private List<String> warnings;
    
    /**
     * 执行详情
     */
    private String executionDetails;
}
